home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / catch88.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  6.0 KB  |  180 lines

  1. 10  DEFINT A-Z
  2. 20  DIM RE(25), CE(25), MV(25), VM(10), MC(25), CM(10)
  3. 30  KEY OFF : SCREEN 0 : WIDTH 40 :CLS
  4. 40  F = 1
  5. 50  RANDOMIZE CVI(MID$(TIME$,7,2))
  6. 60  VM(1) = 1: VM(2) = 1: VM(3) = 1: VM(4) = 1: VM(5) = 2
  7. 70  VM(6) = 2: VM(7) = 2: VM(8) = 3: VM(9) = 3: VM(10) = 5
  8. 80  CM(1) = 25:CM(2) =25: CM(3) =25: CM(4) =25: CM(5)=157
  9. 90  CM(6) = 157: CM(7) =157: CM(8) = 15:CM(9)=15:CM(10) = 2
  10. 100  PRINT
  11. 110  PRINT "CATCH88 -- COPYRIGHT  Richard K. Collins"
  12. 120  PRINT "                  January 1982"
  13. 121  PRINT :PRINT :PRINT :PRINT
  14. 125  PRINT : PRINT "     THIS PROGRAM FOR USE ONLY BY "
  15. 126  PRINT "MEMBERS OF THE CAPITAL PC USERS GROUP."
  16. 130  PRINT :PRINT :PRINT
  17. 140  PRINT "      Press 4 for 40 columns"
  18. 150  PRINT "      Press 8 for 80 columns
  19. 160  X$ = INKEY$
  20. 170  IF X$ = "4" THEN GOSUB 1230 : GOTO 200
  21. 180  IF X$ = "8" THEN GOSUB 1390 : GOTO 200
  22. 181  IF X$ = "Q" THEN CLS :END
  23. 185  IF X$ = "r" THEN GOSUB 3000
  24. 190  GOTO 160
  25. 200  X$ = INKEY$
  26. 210  IF X$ = "e" THEN MM=21 : LV=15 : SLV=2 : NE=25-2*F : GOTO 270
  27. 220  IF X$ = "m" THEN MM=21 : LV=10 : SLV=7 : NE=20-2*F : GOTO 270
  28. 230  IF X$ = "h" THEN MM=21 : LV=10 : SLV=10: NE=15-2*F : GOTO 270
  29. 240  IF X$ = "v" THEN MM=21 : LV=5  : SLV=15: NE=10-F : GOTO 270
  30. 250  IF X$ = "Q" THEN CLS : END
  31. 260  GOTO 200
  32. 270  CLS : LOCATE 12,20,0 : PRINT "Good Luck !";
  33. 275  HITS = 0: MISSES =0
  34. 280  FOR I = 1 TO 250 : NEXT I
  35. 290  CLS
  36. 300  LOCATE 1,SC,0 :PRINT "SCORE 0";
  37. 310  LOCATE 1,RM,0 :PRINT "REMAINING ";MM
  38. 320  IF SIZE = 40 THEN 370
  39. 330  S$ = " 11223344556677889900qqwweerrttyyuuiiooppaassddffgghhjjkkll;;zzxxccvvbbnnmm,,.."
  40. 340  LOCATE 25,1,0 : PRINT S$;
  41. 350  LOCATE 24,1,0 :PRINT " ";:FOR I = 1 TO 39 :PRINT CHR$(223);CHR$(223); :NEXT
  42. 360  GOTO 400
  43. 370  S$ = "1234567890qwertyuiopasdfghjkl;zxcvbnm,."
  44. 380  LOCATE 25,1,0 : PRINT S$;
  45. 390  LOCATE 24,1,0 : FOR I = 1 TO 39 : PRINT CHR$(223); :NEXT
  46. 400  OLDPOS = 20 :NEWPOS = 20 : GOSUB 930
  47. 410  FOR N = 1 TO NE : GOSUB 1050 :NEXT
  48. 420  NP = 1
  49. 430  REM
  50. 440  RN = RE(NP) + 1 : CN = CE(NP)
  51. 450  IF RN < 23 THEN LOCATE RN-1,CN,0 : PRINT " "; :LOCATE RN,CN,0 : PRINT CHR$(MC(NP)); : RE(NP) = RN : GOTO 480
  52. 460  LOCATE 22,CN,0 : PRINT " "; : N = NP
  53. 470  IF (CN = NEWPOS) OR (CN = NEWPOS+1) THEN GOSUB 1100:GOSUB 1050 ELSE GOSUB 1020
  54. 480  X$ = INKEY$
  55. 490  IF X$ = "Q" THEN CLS :END
  56. 500  IF X$ ="1" THEN NEWPOS =1: GOSUB 930
  57. 510  IF X$ ="2" THEN NEWPOS =2: GOSUB 930
  58. 520  IF X$ ="3" THEN NEWPOS =3: GOSUB 930
  59. 530  IF X$ ="4" THEN NEWPOS =4: GOSUB 930
  60. 540  IF X$ ="5" THEN NEWPOS =5: GOSUB 930
  61. 550  IF X$ ="6" THEN NEWPOS =6: GOSUB 930
  62. 560  IF X$ ="7" THEN NEWPOS =7: GOSUB 930
  63. 570  IF X$ ="8" THEN NEWPOS =8: GOSUB 930
  64. 580  IF X$ ="9" THEN NEWPOS =9: GOSUB 930
  65. 590  IF X$ ="0" THEN NEWPOS =10: GOSUB 930
  66. 600  IF X$ ="q" THEN NEWPOS =11: GOSUB 930
  67. 610  IF X$ ="w" THEN NEWPOS =12: GOSUB 930
  68. 620  IF X$ ="e" THEN NEWPOS =13: GOSUB 930
  69. 630  IF X$ ="r" THEN NEWPOS =14: GOSUB 930
  70. 640  IF X$ ="t" THEN NEWPOS =15: GOSUB 930
  71. 650  IF X$ ="y" THEN NEWPOS =16: GOSUB 930
  72. 660  IF X$ ="u" THEN NEWPOS =17: GOSUB 930
  73. 670  IF X$ ="i" THEN NEWPOS =18: GOSUB 930
  74. 680  IF X$ ="o" THEN NEWPOS =19: GOSUB 930
  75. 690  IF X$ ="p" THEN NEWPOS =20: GOSUB 930
  76. 700  IF X$ ="a" THEN NEWPOS =21: GOSUB 930
  77. 710  IF X$ ="s" THEN NEWPOS =22: GOSUB 930
  78. 720  IF X$ ="d" THEN NEWPOS =23: GOSUB 930
  79. 730  IF X$ ="f" THEN NEWPOS =24: GOSUB 930
  80. 740  IF X$ ="g" THEN NEWPOS =25: GOSUB 930
  81. 750  IF X$ ="h" THEN NEWPOS =26: GOSUB 930
  82. 760  IF X$ ="j" THEN NEWPOS =27: GOSUB 930
  83. 770  IF X$ ="k" THEN NEWPOS =28: GOSUB 930
  84. 780  IF X$ ="l" THEN NEWPOS =29: GOSUB 930
  85. 790  IF X$ =";" THEN NEWPOS =30: GOSUB 930
  86. 800  IF X$ ="z" THEN NEWPOS =31: GOSUB 930
  87. 810  IF X$ ="x" THEN NEWPOS =32: GOSUB 930
  88. 820  IF X$ ="c" THEN NEWPOS =33: GOSUB 930
  89. 830  IF X$ ="v" THEN NEWPOS =34: GOSUB 930
  90. 840  IF X$ ="b" THEN NEWPOS =35: GOSUB 930
  91. 850  IF X$ ="n" THEN NEWPOS =36: GOSUB 930
  92. 860  IF X$ ="m" THEN NEWPOS =37: GOSUB 930
  93. 870  IF X$ ="," THEN NEWPOS =38: GOSUB 930
  94. 880  IF X$ ="." THEN NEWPOS =39: GOSUB 930
  95. 890  IF MISSES > MM THEN GOTO 1130
  96. 900  NP = NP + 1 : IF NP = NE THEN NP = 1
  97. 910  GOTO 430
  98. 920  REM
  99. 930  IF SIZE = 40 THEN 980
  100. 940  NEWPOS = 2*NEWPOS : LOCATE 23,OLDPOS,0:PRINT "  ";
  101. 950  LOCATE 23,NEWPOS,0:PRINT CHR$(211);CHR$(189);
  102. 960  OLDPOS = NEWPOS
  103. 970  RETURN
  104. 980  LOCATE 23,OLDPOS,0 :PRINT " ";
  105. 990  LOCATE 23,NEWPOS,0 :PRINT CHR$(127);
  106. 1000  OLDPOS = NEWPOS
  107. 1010  RETURN
  108. 1020  SOUND 15000,1 :SOUND 10000,1 :SOUND 5000,1
  109. 1030  MISSES = MISSES + 1
  110. 1040  LOCATE 1,RM+11,0 : PRINT MM-MISSES+1;
  111. 1050  RE(N) = RND*LV + SLV : CE(N) = RND*RPOS + RS
  112. 1060  MT = RND*9 + 1
  113. 1070  MV(N) = VM(MT) : MC(N) = CM(MT)
  114. 1080  LOCATE RE(N),CE(N),0 :PRINT CHR$(MC(N));
  115. 1090  RETURN
  116. 1100  SOUND 2000,1 : SOUND 1000,1
  117. 1110  HITS = HITS + MV(NP) : LOCATE 1,SC+6,0 : PRINT HITS;
  118. 1120  RETURN
  119. 1130  REM      levels of achievement
  120. 1140  IF HITS < F*10 THEN FOR I = 370 TO 300 STEP -3: SOUND I,1 :NEXT :GOTO 1210
  121. 1150  IF HITS < F*60 THEN FOR I = -8 TO 10 STEP 1 : SOUND 420 + I*ABS(I),1 :NEXT  :GOTO 1210
  122. 1160  IF HITS < F*100 THEN PLAY "o3cco2cc" :GOTO 1210
  123. 1170  IF HITS < F*150 THEN PLAY "o3msl4t210ceeemnl2c" :GOTO 1210
  124. 1180  IF HITS < F*200 THEN FOR I = 10000 TO 2700 STEP -53:SOUND I,1:NEXT I :GOTO 1210
  125. 1190  IF HITS < F*250 THEN PLAY "l2o4cdefgl4gggo5l1c":GOTO 1210
  126. 1200  IF HITS > F*250 THEN GOSUB 1620
  127. 1210  LOCATE 3,1,0 : INPUT "GAME OVER press return to continue ",X$
  128. 1215  IF SIZE = 40 THEN GOSUB 1230 ELSE GOSUB 1390
  129. 1220  GOTO 200
  130. 1230  WIDTH 40 : CLS :PRINT
  131. 1240  SIZE = 40 : RPOS = 38 : SC = 1: RM = 20 : RS = 1
  132. 1250  PRINT "                CATCH88" : PRINT
  133. 1260  PRINT "The object of the game is to catch 'em"
  134. 1270  PRINT "          before they fall."
  135. 1280  PRINT
  136. 1290  PRINT : PRINT "       ";CHR$(25);"  is worth 1 point."
  137. 1300  PRINT "       ";CHR$(157);"  is worth 2 points."
  138. 1310  PRINT "       ";CHR$(15);"  is worth 3 points."
  139. 1320  PRINT "       ";CHR$(2);"  is worth 5 points."
  140. 1330  PRINT : PRINT : PRINT "   A capital  Q  will stop the game."
  141. 1340  PRINT : PRINT
  142. 1350  PRINT "   Choose a suitable level of play :"
  143. 1360  PRINT :PRINT
  144. 1370  PRINT "e(asy  m(edium  h(ard  v(ery hard  Q(uit  ";
  145. 1380  RETURN
  146. 1390  WIDTH 80 : CLS : SIZE = 80 : RPOS = 77 : SC = 10 : RM = 50:RS = 2
  147. 1400  PRINT
  148. 1410  PRINT SPC(19) " [[[[  [[[  [[[[[  [[[[ [   [  [[[   [[[ "
  149. 1420  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  150. 1430  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  151. 1440  PRINT SPC(19) "[     [[[[[   [   [     [[[[[  [[[   [[[ "
  152. 1450  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  153. 1460  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  154. 1470  PRINT SPC(19) " [[[[ [   [   [    [[[[ [   [  [[[   [[[ "
  155. 1480  PRINT
  156. 1490  PRINT SPC(21) "The object of the game is to catch 'em"
  157. 1500  PRINT  SPC(21) "          before they fall."
  158. 1510  PRINT
  159. 1520  PRINT : PRINT  SPC(29) CHR$(25);"  is worth 1 point."
  160. 1530  PRINT  SPC(29) CHR$(157);"  is worth 2 points."
  161. 1540  PRINT  SPC(29) CHR$(15);"  is worth 3 points."
  162. 1550  PRINT  SPC(29) CHR$(2);"  is worth 5 points."
  163. 1560  PRINT : PRINT : PRINT  SPC(24) "A capital  Q  will stop the game."
  164. 1570  PRINT
  165. 1580  PRINT SPC(24) "Choose a suitable level of play :"
  166. 1590  PRINT :PRINT SPC(19) "e(asy  m(edium  h(ard  v(ery hard   Q(uit";
  167. 1600  LOCATE 12,1,0
  168. 1610  RETURN
  169. 1620  CLS : PRINT :PRINT "     I really did'nt think anyone was"
  170. 1630  PRINT "that fast.  Rescaling ....":PRINT :PRINT:FOR I = 1 TO 2000:NEXT
  171. 1640  SOUND 37,180:FOR I = 1 TO 14000:NEXT:SOUND 37,0
  172. 1650  F = F*2 :PRINT "Next time you run this program,"
  173. 1660  PRINT "press the letter r before you"
  174. 1670  PRINT "enter a 4 or 8.  My very best luck."
  175. 1680  PRINT :PRINT "                           RKC"
  176. 1690  RETURN
  177. 3000  INPUT "Enter your factor number  ",F
  178. 3001  IF F > 5 THEN PRINT "Be reasonable !" : GOTO 3000
  179. 3002  RETURN
  180.